1. Field of the Invention
The present invention relates to systems and methods for recording and playing back media programs embodied in media streams, and in particular to a system and method for secure storage and retrieval of media programs temporarily stored in live buffer.
2. Description of the Related Art
Compression technologies have made the storage and transmission of media programs having audiovisual information to consumers feasible. Such video compression techniques (hereinafter generically referred to as compressed packetized transport (CPT) techniques typically break the media program into a plurality of frames that are compressed using spatial and/or temporal encoding techniques. Typically, some of the frames are identified as index (or I) frames, which are only spatially encoded. Such frames can be decoded without requiring data from any of the other frames, and serve as a datum for other frames. Other frames (known as predictive or P frames) also use temporal compression techniques, wherein the data recorded for the frame represent changes from an earlier frame. Since frame-to-frame differences are often small, such frames are substantially more efficiently compressed than the I frames. P frames, however, cannot be decoded without reference to another (e.g. I) frame. Still other frames (known as bi-predictive or B frames) also use spatial and temporal compression, but obtain their values from multiple frames. B frames offer higher compression than I frames or P frames, but must reference those frames to be reproduced. MPEG-2, MPEG-3, MPEG-4, H.264, H.265, and AVC are examples of CPT paradigms.
Compressed media programs can be transmitted via satellite, cable, terrestrial wireless transmission, or the Internet, or received in analog form and compressed locally. Once received by a suitable device such as a set top box (STB) or receiver, the media programs may be decoded and/or decrypted (if encoded and/or encrypted by the headend or source of the media program) and provided to a display device for presentation to the user.
Such media programs may also be locally recorded for later playback using devices such as a digital video recorder (DVR), which may be integrated with the receiver or a separate device. Such recordings are typically stored on a large capacity storage device such as an internal or external hard disk drive (HDD).
DVRs typically include a RAM buffer that stores media program streams as they are received and plays them back a user controllable short time later. Such buffers are known as “live off disk” or LOD buffers. These buffers provide a “live pause” capability that allows the user to pause the playback of the received media program, while the LOD buffer continues to store the media streams as they are received. When the user thereafter selects “play,” playback from the LOD buffer resumes from the temporal point where the pause command was received. The LOD buffer also offers playback of the media program(s) stored therein from any randomly selected temporal point, and thus enables trick play and other features. The LOD buffer is typically implemented in a partition of the same hard disk drive (HDD) used to permanently store media programs, although separate memory devices may also be used.
In most cases, storage of incoming media programs into the LOD buffer is not initiated upon the selection of the “pause” command. Rather, media streams received by the DVR are routinely sent to the LOD buffer where they are stored, retained, and written over on a first-in-first out (FIFO) basis without user intervention or command. LOD buffers typically include enough memory to store two or more hours of program material, hence it is possible for several programs to be stored in the DVR LOD buffer at a time. However, since the LOD buffer operates on a FIFO basis, any programs stored in the LOD buffer are subject to being erased or written over to make room for newer media programs unless they are designated for permanent storage. Hence, there is a need to provide a means for selecting recordings within the LOD buffer for permanent (e.g. indeterminate) storage.
It is desirable for DVRs to have the capacity to transmit data to client devices such as cellphones, laptops, or tablet computers. DVRs that are capable of such functionality are commonly known as gateway DVRs. The transmission of such information is often accomplished by use of a HTTP live streaming (HLS). HLS is an HTTP (hypertext transfer protocol) based media streaming protocol that is used in selected client devices. HLS works by breaking up an incoming media stream into a sequence of small HTTP-based file downloads known as chunks, with each chunk being a small portion of a potentially unbounded transport stream. At the start of the streaming session, the client device receives a playlist or manifest (*.m3u8), and uses that playlist or manifest to determine which chunks to request in which order. The playlist may also contain other metadata, and may be continually updated as additional media chunks become available. Typically, such streams are secure with before transmission, for example, using a Digital Transmission Licensing Administrator (DTLA) approved technology such as Internet Protocol Rights Management (IPRM).
To assure that stored media program recordings are not subjected to unauthorized use, they are encrypted before storage, even media program recordings that are only to be temporarily stored in the LOD buffer. Such recordings are typically encrypted using techniques different than those used for secure streaming. Hence, the gateway DVR is required to retrieve the encrypted media program from storage, decrypt it, then re-encrypt the media program for transmission via HLS. This presents processing challenges that can result in more expensive gateway DVRs or gateway DVRs that are less responsive to client requests.
In view of the foregoing, there is a need for systems and methods for securely storing the contents of LOD buffers in a form that permits their conversion to permanent storage and later transmission to clients without requiring decryption and re-encryption of the media stream. This disclosure describes systems and methods that satisfy that need.